﻿#region License

// Copyright 2008 - Paul den Dulk (Geodan)
//
// This file is part of SharpMap.
// SharpMap is free software; you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// SharpMap is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public License
// along with SharpMap; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 

#endregion

using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Xml.Linq;

namespace BruTile.Web.TmsService
{
    public class TileMapService
    {
        public IEnumerable<TileMapItem> TileMaps { get; set; }
        public string Version { get; set; }

        public static TileMapService CreateFromResource(Stream result)
        {
            var tileMapService = new TileMapService();
            
            XDocument xml = XDocument.Parse(new StreamReader(result).ReadToEnd());

            tileMapService.TileMaps =
                from tileMap in xml.Root.Descendants("TileMap")
                select new TileMapItem
                {
                    Href = tileMap.Attribute("href").Value,
                    Srs = tileMap.Attribute("srs").Value,
                    Title = tileMap.Attribute("title").Value,
                    Profile = tileMap.Attribute("profile").Value
                };

            return tileMapService;
        }
    }

    public class TileMapItem 
    {
        public string Href { get; set; }
        public string Srs { get; set; }
        public string Title { get; set; }
        public string Profile { get; set; }
    }
}
